home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / jonas.lha / game2.s < prev    next >
Encoding:
Text File  |  1990-09-13  |  31.7 KB  |  1,860 lines

  1.  
  2.     section x,code_c
  3.  
  4. memsize    = 200*1000                ;270000
  5.     
  6. ; // Amiga Exec Offset list //
  7. Openlibrary:      equ   -408
  8. Closelibrary:     equ   -414
  9. Forbid:           equ   -132
  10. Permit:           equ   -138
  11. Allocmem:         equ   -198
  12. Freemem:          equ   -210
  13. ; // _AbsExecBase
  14. Sysbase:      equ    $04
  15. ; // Amiga Dos Offset list //
  16. Open:             equ   -30
  17. Close:            equ   -36
  18. Read:             equ   -42
  19. Write:            equ   -48
  20. Deletefile:       equ   -72
  21. LoadSeg:          equ   -150
  22. Delay:            equ   -198
  23. Execute:          equ   -222
  24. Input:          equ    -54
  25. Output:          equ    -60
  26. ; // FileModes //
  27. Mode_Newfile:     equ   $3ee
  28. Mode_Oldfile:     equ   $3ed
  29.  
  30.     move.l    sysbase,a6
  31.     lea    dosname,a1
  32.     jsr    OpenLibrary(a6)
  33.     move.l    d0,dosbase
  34.     lea    gfxname,a1
  35.     jsr    OpenLibrary(a6)
  36.     move.l    d0,gfxbase
  37.     add.l    #$32,d0
  38.     move.l    d0,copbase    
  39.     
  40.     move.l    #memsize,d0
  41.     move.l    #$10002,d1
  42.     jsr    AllocMem(a6)
  43.     cmp.l    #0,d0
  44.     beq    slut
  45.     move.l    d0,membase
  46.     
  47.     lea    cpr,a2
  48.     move.l    membase,d0
  49.     swap    d0
  50.     move.w    d0,2(a2)
  51.     swap    d0
  52.     move.w    d0,6(a2)
  53.     add.l    #81920,d0
  54.     swap    d0
  55.     move.w    d0,10(a2)
  56.     swap    d0
  57.     move.w    d0,14(a2)
  58.  
  59.     move.l    membase,d0
  60.     add.l    #165000,d0
  61.     move.l    d0,bakgr
  62.     lea    pblank,a2
  63.     swap    d0
  64.     move.w    d0,2(a2)
  65.     swap    d0
  66.     move.w    d0,6(a2)
  67.     move.l    membase,d0
  68.     add.l    #190000,d0
  69.     move.l    d0,infoscr
  70.     lea    info,a2
  71.     swap    d0
  72.     move.w    d0,2(a2)
  73.     swap    d0
  74.     move.w    d0,6(a2)
  75.     move.w    #$6666,rugr
  76.     move.w    #$6666,rugl
  77.     move.l    #gubbsprite,d0
  78.     lea    sprite,a2
  79.     swap    d0
  80.     move.w    d0,2(a2)
  81.     swap    d0
  82.     move.w    d0,6(a2)
  83.  
  84.     move.l    bakgr,a0
  85.     move.l    #24980,d0
  86. fylla:    move.b    #$ff,(a0)+
  87.     dbra    d0,fylla
  88.     jsr    blackout
  89.     move.l    #38,d0
  90.     jsr    ritagubbe
  91.     move.l    #200,d0
  92. hdf:    jsr    realrsync
  93.     dbra    d0,hdf
  94.  
  95.  
  96.     jsr    Forbid(a6)
  97.     move.w    #$0080,$dff096
  98.     move.l    copbase,a0
  99.     move.l    (a0),oldcop
  100.     move.l    #cpr,(a0)
  101.     move.w    #$8080,$dff096
  102. ;    jsr    Permit(a6)
  103.  
  104. greset:    move.l    startinglevel,level
  105.     jsr    spritesgone
  106.     jsr    blackout
  107.     jsr    clearinfo
  108.     jsr    introduction
  109.     move.l    antalliv,lives
  110.     jsr    clearinfo
  111.     jsr    mt_init
  112.  
  113. weiron:
  114.     jsr    spritesgone
  115.     jsr    blackout
  116.     jsr    Draw
  117.     jsr    spritesetup
  118.     jsr    lightson
  119.     move.l    #0,d0
  120.     jsr    ritagubbe
  121. nextra:    lea    levline,a0
  122.     jsr    drawinfo
  123.     jsr    spritestartup
  124.     move.l    level,d0
  125.     lsl.l    #4,d0
  126.     lea    leveldata,a0
  127.     add.l    d0,a0    
  128.     move.l    (a0),gubbx
  129.     move.l    4(a0),gubby
  130.     move.l    #0,nycklar
  131.     move.l    #0,hoppa
  132.     move.l    #10,detect
  133.     move.l    #0,fall
  134.     move.l    #0,klarat
  135.     move.l    8(a0),nyckn
  136.     move.l    #0,slafs
  137.  
  138. scrl:
  139.     cmp.l    #1,slafs
  140.     beq    doedens
  141.     move.l    gubby,gamy
  142.     move.l    gubbx,d0
  143.     move.l    gubby,d1
  144.     sub.l    #145,d0
  145.     sub.l    #76,d1
  146.     jsr    plotscn
  147.     jsr    getgaddrs
  148.     jsr    collision
  149.     jsr    zpritte
  150.     jsr    checkers
  151.     jsr    hanglas
  152.     cmp.l    #1,klarat
  153.     beq    jaaahhh
  154.     jsr    rutsch
  155.     cmp.l    #1,ruts
  156.     beq    tyx
  157.     cmp.l    #0,hoppa
  158.     bne    gh
  159.     jsr    akatrappa
  160.     move.l    #1,ramla
  161.     jsr    down
  162. gh:    cmp.l    #0,fall
  163.     bne    nehe2
  164.     btst    #1,$dff00c
  165.     beq    nehe
  166.     move.l    #8,gubbh    ;move left
  167.     sub.l    #1,gubbg
  168.     jsr    ritagubben
  169.     jsr    huppe    
  170.     cmp.l    #0,hoppa
  171.     bne    nehe2
  172.     jsr    left
  173.     jmp    guft
  174. nehe:    btst    #1,$dff00d
  175.     beq    nehe2        ;move right
  176.     move.l    #0,gubbh    
  177.     add.l    #1,gubbg
  178.     jsr    ritagubben
  179.     jsr    huppe
  180.     cmp.l    #0,hoppa
  181.     bne    nehe2
  182.     jsr    right
  183.     jmp    guft
  184. nehe2:
  185.     jsr    huppe
  186. guft:    jsr    hopp
  187.  
  188. tyx:    move.l    gamy,d0
  189.     cmp.l    gubby,d0
  190.     blt    snyggve
  191.     jsr    uppdat
  192.     jsr    livingchars
  193.     jsr    rsync
  194.     jsr    rullband
  195.     jsr    rsync
  196.     jmp    mw
  197. snyggve:    jsr    rsync
  198.     jsr    uppdat
  199.     jsr    livingchars
  200.     jsr    rullband
  201.     jsr    rsync
  202. mw:    btst    #6,$bfe001
  203.     bne    scrl
  204.  
  205. finis:      jsr    mt_end
  206.     move.l    SysBase,a6
  207. ;    jsr    Forbid(a6)
  208.     move.w    #$0080,$dff096
  209.     move.l    copbase,a0
  210.     move.l    oldcop,(a0)
  211.     move.w    #$8080,$dff096
  212.     jsr    Permit(a6)
  213.     move.l    membase,a1
  214.     move.l    #memsize,d0
  215.     jsr    FreeMem(a6)
  216.  
  217. slut:    rts
  218. realrsync:    btst    #0,$dff005
  219.     bne    realrsync
  220. rr2:    btst    #0,$dff005
  221.     beq    rr2
  222.     rts
  223.  
  224. Rsync:      btst    #0,$dff005
  225.     bne    rsync
  226. r2:    btst    #0,$dff005
  227.     beq    r2
  228.     jsr    mt_music
  229.     rts
  230.  
  231. collision:
  232.     move.w    $dff00e,d0
  233.     sub.l    #1,detect
  234.     cmp.l    #0,detect
  235.     bne    slink
  236.     add.l    #1,detect
  237.     and.l    #$0e00,d0
  238.     cmp.w    #$00,d0
  239.     beq    slink
  240.     move.l    #1,slafs
  241. slink:    rts
  242. jaaahhh:jsr    spritesgone
  243.     move.l    #30,d0
  244. gf:    jsr    rsync
  245.     dbra    d0,gf
  246.     move.l    #31,d4
  247. rt:    add.l    #1,gubby
  248.     move.l    gubbx,d0
  249.     move.l    gubby,d1
  250.     sub.l    #145,d0
  251.     sub.l    #76,d1
  252.     jsr    plotscn
  253.     jsr    rsync
  254.     dbra    d4,rt        
  255.     add.l    #1,level
  256.     jmp    nextra
  257.  
  258. hanglas:move.l    nycklar,d0
  259.     cmp.l    nyckn,d0
  260.     bne    aetsdf
  261.     move.l    gaddr,d0
  262.     cmp.l    gsaddr,d0
  263.     bne    aetsdf
  264.     move.l    gubby,d0
  265.     and.l    #7,d0
  266.     cmp.l    #0,d0
  267.     bne    aetsdf    
  268.     move.l    gaddr,a0
  269.     cmp.b    #'w',160(a0)
  270.     bne    aetsdf
  271.     move.l    #1,klarat
  272. aetsdf:    rts
  273. doedens:jsr    gubbdo
  274.     move.l    #40,d0
  275. swett:    jsr    rsync
  276.     dbra    d0,swett
  277.     cmp.l    #0,lives
  278.     beq    gove
  279.     sub.l    #1,lives
  280.     jmp    weiron
  281. gove:move.l    #gotxt,a0
  282.     move.l    infoscr,a1
  283.     add.l    #642,a1
  284.     jsr    drawline
  285.     move.l    #200,d6
  286. ubg:    jsr    rsync
  287.     dbra    d6,ubg
  288.     jsr    mt_end
  289.     jmp    greset    
  290.  
  291. mew:    btst    #6,$bfe001
  292.     bne    mew
  293.     jmp    finis
  294. checkers:move.l    gaddr,a2
  295.     jsr    testa
  296.     sub.l    #160,a2
  297.     jsr    testa
  298.     move.l    gsaddr,a2
  299.     jsr    testa
  300.     sub.l    #160,a2
  301.     jsr    testa
  302.     move.l    gubby,d0
  303.     and.l    #7,d0
  304.     cmp.l    #0,d0
  305.     beq    rets
  306.     move.l    gaddr,a2
  307.     add.l    #160,a2
  308.     jsr    testa
  309.     move.l    gsaddr,a2
  310.     add.l    #160,a2
  311.     jsr    testa
  312. rets:    rts
  313. testa:    cmp.b    #'u',(a2)
  314.     beq    nyckel
  315.     cmp.b    #'r',(a2)
  316.     beq    dod
  317.     cmp.b    #'s',(a2)
  318.     beq    dod
  319.     cmp.b    #'t',(a2)
  320.     beq    dod
  321.     rts
  322.  
  323. nyckel:    move.l    a2,d0
  324.     move.l    #playground,d1
  325.     sub.l    d1,d0
  326.     move.l    #0,d1
  327.     jsr    writech
  328.     move.b    #'v',(a2)
  329.     add.l    #1,nycklar    
  330.     rts
  331.  
  332. dod:    move.l    #1,slafs
  333.     rts
  334. rullband:
  335.     move.l    gaddr,a0
  336.     cmp.b    #'c',160(a0)
  337.     bne    ghj
  338.     jsr    right
  339. ghj:    move.l    gsaddr,a0
  340.     cmp.b    #'d',160(a0)
  341.     bne    ghyj
  342.     jsr    left
  343. ghyj:    rts
  344. rutsch:    move.l    #0,ruts
  345.     cmp.l    #0,hoppa
  346.     bne    guhd
  347.     move.l    gaddr,a0
  348.     cmp.b    #'m',160(a0)
  349.     bne    ghd
  350.     move.l    #1,ruts
  351.     add.l    #1,gubbx
  352.     move.l    #0,ramla
  353.     move.l    #0,fall
  354.     jsr    down
  355.     rts
  356. ghd:    move.l    gsaddr,a0
  357.     cmp.b    #'n',160(a0)
  358.     bne    guhd
  359.     move.l    #1,ruts
  360.     sub.l    #1,gubbx
  361.     move.l    #0,fall
  362.     move.l    #0,ramla
  363.     jsr    down
  364. guhd:    rts
  365.  
  366.  
  367.  
  368. huppe:    btst    #7,$bfe001
  369.     bne    nupe
  370.     cmp.l    #0,fall
  371.     bne    nupe
  372.     cmp.l    #0,hoppa
  373.     bne    nupe
  374.     move.l    #3,hoppa
  375.     move.l    #0,hoppctr
  376.     btst    #1,$dff00c
  377.     beq    huft
  378.     move.l    #1,hoppa            
  379. huft:    btst    #1,$dff00d
  380.     beq    huftt
  381.     move.l    #2,hoppa            
  382. huftt:    
  383. nupe:    rts
  384.  
  385. hopp:    cmp.l    #0,hoppa
  386.     beq    ejhopp
  387.     add.l    #1,hoppctr
  388.     cmp.l    #1,hoppa
  389.     bne    tyu
  390.     jsr    left
  391. tyu:    cmp.l    #2,hoppa
  392.     bne    tayu
  393.     jsr    right
  394. tayu:    cmp.l    #22,hoppctr
  395.     bge    tayus
  396.     jsr    up
  397.     jmp    ejhopp
  398. tayus:    cmp.l    #43,hoppctr
  399.     beq    landat
  400.     move.l    #0,ramla
  401.     jsr    down    
  402. ejhopp:    rts
  403. landat:    move.l    #0,hoppa
  404.     rts    
  405.  
  406.  
  407. getgaddrs:
  408.     move.l    gubby,d1
  409.     lsr.l    #3,d1
  410.     mulu    #160,d1
  411.     move.l    gubbx,d2
  412.     lsr.l    #3,d2
  413.     add.l    d2,d1
  414.     move.l    #playground,gaddr
  415.     add.l    d1,gaddr
  416.     move.l    gaddr,gsaddr
  417.     move.l    gubbx,d1
  418.     move.l    gubbx,d2
  419.     lsr.l    #3,d1
  420.     lsl.l    #3,d1
  421.     cmp.l    d1,d2
  422.     beq    coit
  423.     add.l    #1,gsaddr
  424. coit:    rts    
  425.  
  426. left:    move.l    gsaddr,a2
  427.     cmp.b    #'h',-1(a2)
  428.     beq    nixxe
  429.     cmp.b    #'j',-1(a2)
  430.     beq    nixxe
  431.     cmp.b    #'h',-161(a2)
  432.     beq    nixxe
  433.     cmp.b    #'j',-161(a2)
  434.     beq    nixxe
  435.     move.l    gubby,d2
  436.     and.l    #7,d2
  437.     cmp.l    #0,d2
  438.     beq    wez
  439.     cmp.b    #'h',159(a2)
  440.     beq    nixxe
  441.     cmp.b    #'j',159(a2)
  442.     beq    nixxe
  443. wez:    sub.l    #1,gubbx
  444. nixxe:    rts
  445.  
  446. right:    move.l    gaddr,a2
  447.     cmp.b    #'h',1(a2)
  448.     beq    nizze
  449.     cmp.b    #'j',1(a2)
  450.     beq    nizze
  451.     cmp.b    #'h',-159(a2)
  452.     beq    nizze
  453.     cmp.b    #'j',-159(a2)
  454.     beq    nizze
  455.     move.l    gubby,d2
  456.     and.l    #7,d2
  457.     cmp.l    #0,d2
  458.     beq    wezz
  459.     cmp.b    #'h',161(a2)
  460.     beq    nizze
  461.     cmp.b    #'j',161(a2)
  462.     beq    nizze
  463. wezz:    add.l    #1,gubbx
  464. nizze:    rts
  465.  
  466.  
  467.  
  468.  
  469. down:    jsr    getgaddrs
  470.     cmp.l    #28,fall
  471.     bne    lever
  472.     lea    sclrs,a0
  473.     move.w    #$0fff,2(a0)
  474. lever:    cmp.l    #1,aktrapp
  475.     beq    stayput
  476.     move.l    gubby,d0
  477.     and.l    #7,d0
  478.     cmp.b    #0,d0
  479.     beq    ryft
  480.     add.l    #1,gubby
  481.     move.l    ramla,d0
  482.     add.l    d0,fall
  483.     rts
  484. ryft:    move.l    gaddr,a1
  485.     add.l    #160,a1
  486.     jsr    chk
  487.     cmp.l    #0,d3
  488.     beq    stayput
  489.     cmp.b    #'a',(a1)
  490.     bne    ewrt
  491.     cmp.l    #22,hoppctr
  492.     blt    ewrt
  493.     move.l    #0,hoppa
  494. ewrt:    cmp.b    #'b',-160(a1)
  495.     beq    fdhg
  496.     cmp.b    #'b',(a1)
  497.     beq    stayput
  498. fdhg:    cmp.b    #'a',-160(a1)
  499.     beq    fdhgl
  500.     cmp.b    #'a',(a1)
  501.     beq    stayput
  502. fdhgl:    move.l    gsaddr,a1
  503.     add.l    #160,a1
  504.     jsr    chk
  505.     cmp.l    #0,d3
  506.     beq    stayput
  507.     add.l    #1,gubby
  508.     move.l    ramla,d0
  509.     add.l    d0,fall    
  510.     rts
  511. stayput:cmp.l    #0,hoppa
  512.     beq    nhe
  513.     move.l    #0,hoppa
  514. nhe:    lea    sclrs,a0    
  515.     cmp.w    #$0fff,2(a0)
  516.     bne    guxx
  517.     move.l    #1,slafs
  518. guxx:    move.l    #0,fall
  519.     rts
  520. chk:    move.l    #0,d3
  521.     cmp.b    #'h',(a1)
  522.     beq    jah
  523.     cmp.b    #'i',(a1)
  524.     beq    jah
  525.     cmp.b    #'j',(a1)
  526.     beq    jah
  527.     cmp.b    #'c',(a1)
  528.     beq    jah
  529.     cmp.b    #'d',(a1)
  530.     beq    jah
  531.     cmp.b    #'x',(a1)
  532.     beq    jah
  533.     cmp.b    #'y',(a1)
  534.     beq    jah
  535.     cmp.b    #'w',(a1)
  536.     beq    jah
  537.     cmp.b    #0,ch5
  538.     beq    ert
  539.     cmp.b    #'e',(a1)
  540.     beq    jah
  541. ert:    move.l    #1,d3
  542. jah:    rts
  543. up:    jsr    getgaddrs
  544.     move.l    gubby,d0
  545.     and.l    #7,d0
  546.     cmp.b    #0,d0
  547.     beq    dryft
  548.     sub.l    #1,gubby
  549.     rts
  550. dryft:    move.l    gaddr,a0
  551.     cmp.b    #'h',-320(a0)
  552.     beq    staypuut
  553.     cmp.b    #'j',-320(a0)
  554.     beq    staypuut
  555.     move.l    gsaddr,a0
  556.     cmp.b    #'h',-320(a0)
  557.     beq    staypuut
  558.     cmp.b    #'j',-320(a0)
  559.     beq    staypuut
  560.     sub.l    #1,gubby
  561.     rts
  562. staypuut:rts
  563.  
  564. akatrappa:
  565.     move.l    #0,aktrapp
  566.     move.l    gaddr,a0
  567.     cmp.l    gsaddr,a0
  568.     bne    ght
  569.     cmp.b    #'b',(a0)
  570.     beq    fyg
  571. ght:    cmp.b    #'a',(a0)
  572.     beq    fyg
  573.     move.l    gubby,d0
  574.     and.l    #7,d0
  575.     cmp.l    #0,d0
  576.     beq    nejjjj
  577.     move.l    gaddr,a0
  578.     cmp.l    gsaddr,a0
  579.     bne    ghht
  580.     cmp.b    #'b',160(a0)
  581.     beq    fyg
  582. ghht:    cmp.b    #'a',160(a0)
  583.     beq    fyg
  584.     rts
  585. fyg:    jsr     up
  586.     move.l    #1,aktrapp
  587. nejjjj:    rts
  588.  
  589.  
  590. Loadfile:
  591.     move.l    d0,d6
  592.     move.l    dosbase,a6
  593.     move.l    a0,d1
  594.     move.l    #$3ed,d2
  595.     jsr    Open(a6)
  596.     move.l    d6,d2
  597.     move.l    d0,d1
  598.     move.l    d0,d6
  599.     cmp.l    #0,d6
  600.     beq    endlf
  601.     move.l    #$10000,d3
  602.     jsr    Read(a6)
  603.     move.l    d6,d1
  604.     jsr    Close(a6)    
  605. endlf:    move.l    sysbase,a6
  606.     move.l    d6,d0
  607.     rts
  608. draw:    lea    playground,a1
  609.     move.l    #0,d6
  610. dlp:    move.l    d6,d0
  611.     clr.l    d1
  612.     move.b    (a1)+,d1
  613.     cmp.b    #'v',d1
  614.     bne    ezz
  615.     move.b    #'u',d1
  616.     move.b    #'u',-1(a1)
  617. ezz:    jsr    writech
  618.     add.l    #1,edika
  619.     cmp.l    #100,edika
  620.     bne    nij
  621.     jsr    rsync
  622.     move.l    #0,edika
  623. nij:    add.l    #1,d6
  624.     cmp.l    #10240,d6
  625.     bne    dlp    
  626.     rts
  627. Writech:move.l    d0,d2
  628.     divu    #160,d2
  629.     move.l    d2,d3
  630.     mulu    #1280,d2
  631.     mulu    #160,d3
  632.     neg.l    d3
  633.     add.l    d0,d3
  634.     add.l    d3,d2
  635.     move.l    membase,a3
  636.     add.l    d2,a3
  637.     move.l     chars,a0
  638.     and.l    #31,d1
  639.     add.l    d1,a0
  640.     move.b    (a0),(a3)
  641.     move.b    40(a0),160(a3)
  642.     move.b    80(a0),320(a3)
  643.     move.b    120(a0),480(a3)
  644.     move.b    160(a0),640(a3)
  645.     move.b    200(a0),800(a3)
  646.     move.b    240(a0),960(a3)
  647.     move.b    280(a0),1120(a3)
  648.     add.l    #81920,a3
  649.     move.b    8000(a0),(a3)
  650.     move.b    8040(a0),160(a3)
  651.     move.b    8080(a0),320(a3)
  652.     move.b    8120(a0),480(a3)
  653.     move.b    8160(a0),640(a3)
  654.     move.b    8200(a0),800(a3)
  655.     move.b    8240(a0),960(a3)
  656.     move.b    8280(a0),1120(a3)
  657.     rts
  658. Plotscn:lea    cpr,a2
  659.     move.l    d0,d2
  660.     lsr     #4,d2
  661.     move.l    d2,d6
  662.     asl    #4,d2
  663.     sub.l    d2,d0
  664.     neg.l    d0
  665.     add.l    #15,d0
  666.     move.l    d0,d2
  667.     asl.l    #4,d2
  668.     add.l    d0,d2
  669.     move.b    d2,51(a2)        
  670.     mulu    #160,d1
  671.     add.l    membase,d1
  672.     asl.l    #1,d6
  673.     add.l    d6,d1
  674.     swap    d1
  675.     move.w    d1,2(a2)
  676.     swap    d1
  677.     move.w    d1,6(a2)
  678.     add.l    #81920,d1
  679.     swap    d1
  680.     move.w    d1,10(a2)
  681.     swap    d1
  682.     move.w    d1,14(a2)
  683.     rts
  684. ritagubben:
  685.     move.l    gubbg,d0
  686.     and.l    #6,d0
  687.     add.l    gubbh,d0
  688. ritagubbe:
  689.     move.l    chars,a2
  690.     add.l    #3520,a2
  691.     add.l    d0,a2
  692.     lea    gdata,a1
  693.     move.l    #15,d0
  694. ritz:    move.w    (a2),(a1)+
  695.     move.w    8000(a2),(a1)+
  696.     add.l    #40,a2
  697.     dbra    d0,ritz
  698.     rts
  699. uppdat:    move.l    #playground,d0
  700.     move.l    gaddr,d1
  701.     sub.l    #1618,d1
  702.     sub.l    d0,d1
  703.     move.l    d1,d0
  704.     move.l    d1,d2
  705.     divu    #160,d2
  706.     move.l    d2,d3
  707.     mulu    #1280,d2
  708.     mulu    #160,d3
  709.     neg.l    d3
  710.     add.l    d0,d3
  711.     add.l    d3,d2
  712.     move.l    membase,a3
  713.     add.l    d2,a3
  714.     move.l    gaddr,a0
  715.     sub.l    #1618,a0
  716.     move.l    #19,d1
  717. liloop:    move.l    a0,a1
  718.     move.l    a3,a2
  719.     move.l    #39,d2
  720. bloop:    move.b  (a1),d0
  721.     cmp.b    #32,d0
  722.     beq    byyp
  723.     and.b    #24,d0
  724.     cmp.b    #0,d0
  725.     bne    byyp
  726.     jsr    andra
  727. byyp:    add.l    #1,a2
  728.     add.l    #1,a1
  729.     dbra    d2,bloop
  730.     add.l    #160,a0
  731.     add.l    #1280,a3
  732.     dbra    d1,liloop
  733.     rts
  734.     
  735. andra:    clr.l    d0
  736.     move.b    (a1),d0
  737.     and.b    #7,d0
  738.     sub.b    #1,d0
  739.     lsl.b    #3,d0
  740.     lea    ch1,a4
  741.     add.l    d0,a4
  742.     move.b    (a4),(a2)
  743.     move.b    1(a4),160(a2)
  744.     move.b    2(a4),320(a2)
  745.     move.b    3(a4),480(a2)
  746.     move.b    4(a4),640(a2)
  747.     move.b    5(a4),800(a2)
  748.     move.b    6(a4),960(a2)
  749.     move.b    7(a4),1120(a2)
  750.     rts
  751.  
  752. livingchars:
  753.     move.l    tsteg,d0
  754.     lea    ch1,a1
  755.     and.l    #7,d0
  756.     move.l    a1,a2
  757.     add.l    d0,a2    
  758.     move.b    #64,(a2)
  759.     move.b    #2,8(a2)
  760.     sub.l    #1,tsteg
  761.     move.l    tsteg,d0    
  762.     and.l    #7,d0
  763.     move.l    a1,a2
  764.     add.l    d0,a2    
  765.     move.b    #127,(a2)
  766.     move.b    #254,8(a2)
  767.     
  768.     move.w    rugr,d1
  769.     ror.w    #1,d1
  770.     move.w    d1,rugr
  771.     move.w    rugl,d1
  772.     ror.w    #1,d1
  773.     move.w    d1,rugl
  774.     
  775.     lea    ch3,a2
  776.     move.w    rugr,d0
  777.     move.w    d0,(a2)
  778.     move.w    d0,14(a2)
  779.     move.w    rugl,d0
  780.     move.w    d0,6(a2)
  781.     move.w    d0,8(a2)
  782.     add.l    #1,skajag
  783.     move.l    skajag,d0
  784.     and.l    #7,d0
  785.     cmp.l    #0,d0
  786.     bne    jaaaa
  787.     move.l    footctr,d0
  788.     lea    ch5,a2
  789.     lea    footholddata,a1
  790.     add.l    d0,a1
  791.     clr.l    d1
  792.     move.b    (a1),d1
  793.     add.l    d1,a2
  794.     move.b  1(a1),d1
  795.     move.b    d1,(a2)
  796.     add.l    #2,footctr
  797.     cmp.b    #13,2(a1)
  798.     bne    jaaaa
  799.     move.l    #0,footctr    
  800. jaaaa:    rts    
  801.  
  802. gubbdo:    move.l    #16,d4
  803.     lea    sclrs,a0
  804.     move.w    #$0faa,2(a0)
  805. blowup:    move.l    d4,d0
  806.     jsr    ritagubbe
  807.     jsr    rsync
  808.     jsr    rsync
  809.     jsr    rsync
  810.     jsr    rsync
  811.     jsr    rsync
  812.     add.l    #2,d4
  813.     cmp.l    #38,d4
  814.     bne    blowup
  815.     rts
  816. blackout:
  817.     lea    clrs,a0
  818.     move.w    #0,2(a0)
  819.     move.w    #0,6(a0)
  820.     move.w    #0,10(a0)
  821.     move.w    #0,14(a0)
  822.     rts
  823. lightson:
  824.     lea    clrs,a0
  825.     move.w    #$0888,2(a0)
  826.     move.w    #$0000,6(a0)
  827.     move.w    #$0eee,10(a0)
  828.     move.w    #$004f,14(a0)
  829.     rts
  830. clearinfo:
  831.     move.l    infoscr,a0
  832.     move.l    #3998,d0
  833. scnclr:    clr.b    (a0)+
  834.     dbra    d0,scnclr
  835.     rts
  836.     
  837. drawinfo:move.l    level,d0
  838.     lsl.l    #5,d0
  839.     add.l    d0,a0    
  840.     move.l    infoscr,a1
  841.     add.l    #642,a1
  842.     jsr    drawline
  843.     move.l    level,d0
  844.     and.l    #15,d0
  845.     add.l    #49,d0
  846.     lea    airline,a0
  847.     move.b    d0,7(a0)
  848.     lea    airline,a0
  849.     move.l    infoscr,a1
  850.     add.l    #1122,a1
  851.     jsr    drawline
  852.     lea    scline,a0
  853.     move.l    infoscr,a1
  854.     add.l    #1602,a1
  855.     jsr    drawline
  856.     lea    lifeline,a0
  857.     move.l    lives,d0
  858.     add.l    #48,d0
  859.     move.b    d0,7(a0)
  860.     move.l    infoscr,a1
  861.     add.l    #2082,a1
  862.     jsr    drawline
  863.     rts
  864.     
  865. drawline:
  866.     move.l    #31,d0
  867.     clr.l    d1
  868.     move.l    chars,a2
  869.     add.l    #2560,a2
  870. qwerty:    move.b    (a0)+,d1
  871.     move.l    a2,a3
  872.     cmp.b    #32,d1
  873.     beq    ewq
  874.     cmp.b    #60,d1
  875.     bge    ewq
  876.     add.l    #320,a3
  877.     and.l    #15,d1
  878. ewq:    and.l    #31,d1
  879.     add.l    d1,a3
  880.     move.b    (a3),(a1)
  881.     move.b    40(a3),40(a1)
  882.     move.b    80(a3),80(a1)
  883.     move.b    120(a3),120(a1)
  884.     move.b    160(a3),160(a1)
  885.     move.b    200(a3),200(a1)
  886.     move.b    240(a3),240(a1)
  887.     move.b    280(a3),280(a1)
  888.     add.l    #1,a1
  889.     dbra    d0,qwerty
  890.     rts    
  891. spritesetup:
  892.     lea    zprite,a0
  893.     move.l    #spr0,d0
  894.     jsr    bestam
  895.     add.l    #8,a0
  896.     move.l    #spr1,d0
  897.     jsr    bestam
  898.     add.l    #8,a0
  899.     move.l    #spr2,d0
  900.     jsr    bestam
  901.     add.l    #8,a0
  902.     move.l    #spr3,d0
  903.     jsr    bestam
  904.     add.l    #8,a0
  905.     move.l    #spr4,d0
  906.     jsr    bestam
  907.     add.l    #8,a0
  908.     move.l    #spr5,d0
  909.     jsr    bestam
  910.     lea    nouse,a0
  911.     move.l    #nospr,d0
  912.     rts
  913. bestam:    move.w    d0,6(a0)
  914.     swap    d0
  915.     move.w    d0,2(a0)
  916.     rts
  917.     
  918. spritestartup:
  919.     move.l    level,d0
  920.     mulu    #192,d0
  921.     lea    levelsprites,a0
  922.     add.l    d0,a0
  923.     lea    sprs0,a1
  924.     jsr    plocka
  925.     add.l    #32,a0
  926.     lea    sprs1,a1    
  927.     jsr     plocka
  928.     add.l    #32,a0
  929.     lea    sprs2,a1    
  930.     jsr     plocka
  931.     add.l    #32,a0
  932.     lea    sprs3,a1    
  933.     jsr     plocka
  934.     add.l    #32,a0
  935.     lea    sprs4,a1    
  936.     jsr     plocka
  937.     add.l    #32,a0
  938.     lea    sprs5,a1    
  939.     jsr     plocka
  940.     rts
  941. plocka:    move.l    (a0),(a1)
  942.     move.w    4(a0),4(a1)
  943.     clr.w    6(a1)
  944.     move.w    6(a0),8(a1)
  945.     clr.w    10(a1)
  946.     move.l    8(a0),12(a1)
  947.     move.l    12(a0),16(a1)
  948.     move.l    16(a0),20(a1)
  949.     move.l    20(a0),24(a1)
  950.     move.l    24(a0),28(a1)
  951.     move.w    28(a0),32(a1)
  952.     rts
  953. spritesgone:
  954.     move.l    #0,spr0
  955.     move.l    #0,spr1
  956.     move.l    #0,spr2
  957.     move.l    #0,spr3
  958.     move.l    #0,spr4
  959.     move.l    #0,spr5
  960.     rts
  961. zpritte:lea    sprs0,a0
  962.     lea    spr0,a1
  963.     move.l    #zclrs0,d1    
  964.     jsr    handle    
  965.     lea    sprs1,a0
  966.     lea    spr1,a1
  967.     move.l    #trash,d1    
  968.     jsr    handle    
  969.     lea    sprs2,a0
  970.     lea    spr2,a1
  971.     move.l    #zclrs1,d1    
  972.     jsr    handle    
  973.     lea    sprs3,a0
  974.     lea    spr3,a1
  975.     move.l    #trash,d1    
  976.     jsr    handle    
  977.     lea    sprs4,a0
  978.     lea    spr4,a1
  979.     move.l    #zclrs2,d1    
  980.     jsr    handle    
  981.     lea    sprs5,a0
  982.     lea    spr5,a1
  983.     move.l    #trash,d1    
  984.     jsr    handle    
  985.     rts
  986. handle:    cmp.w    #0,(a0)
  987.     beq    outta
  988.     add.w    #1,10(a0)
  989.     move.w    10(a0),d0
  990.     cmp.w    8(a0),d0
  991.     bne    neeeee
  992.     move.w    #0,10(a0)
  993.     move.w    20(a0),d0
  994.     add.w    d0,30(a0)
  995.     move.w    30(a0),d0
  996.     cmp.w    12(a0),d0
  997.     bne    nee
  998.     neg.w    20(a0)
  999. nee:    cmp.w    14(a0),d0
  1000.     bne    neee
  1001.     neg.w    20(a0)
  1002. neee:    move.w    22(a0),d0
  1003.     add.w    d0,32(a0)
  1004.     move.w    32(a0),d0
  1005.     cmp.w    16(a0),d0
  1006.     bne    neeee
  1007.     neg.w    22(a0)
  1008. neeee:    cmp.w    18(a0),d0
  1009.     bne    neeeee
  1010.     neg.w    22(a0)
  1011. neeeee:    add.w    #1,6(a0)
  1012.     move.w    4(a0),d0
  1013.     cmp.w    6(a0),d0
  1014.     bne    selik
  1015.     move.w    #0,6(a0)
  1016.     eor.w    #2,2(a0)
  1017. selik:    move.l    d1,a2
  1018.     move.w    24(a0),2(a2)
  1019.     move.w    26(a0),6(a2)
  1020.     move.w    28(a0),10(a2)
  1021.     clr.l    d0
  1022.     move.w    32(a0),d0
  1023.     sub.l    gubby,d0
  1024.     add.l    #$70,d0
  1025.     cmp.w    #10,d0
  1026.     blt    outta
  1027.     cmp.w    #$c0,d0
  1028.     bge    outta
  1029.     move.b    d0,(a1)
  1030.     add.l    #23,d0
  1031.     move.b    d0,2(a1)
  1032.     cmp.w    #$c0,d0
  1033.     blt    ovan
  1034.     move.b    #$c0,2(a1)
  1035. ovan:    move.w    30(a0),d0
  1036.     sub.l    gubbx,d0
  1037.     add.l    #268,d0
  1038.     cmp.w    #100,d0
  1039.     blt    outta
  1040.     cmp.w    #480,d0
  1041.     bge    outta
  1042.     move.w    d0,d1
  1043.     and.l    #1,d1
  1044.     move.b    d1,3(a1)
  1045.     lsr.w    #1,d0
  1046.     move.b    d0,1(a1)
  1047.     move.l    #22,d1
  1048.     move.l    chars,a3
  1049.     move.w    2(a0),d0
  1050.     add.l    d0,a3
  1051.     add.l    #4480,a3
  1052. reeta:    move.w    (a3),4(a1)
  1053.     move.w    8000(a3),6(a1)            
  1054.     add.l    #4,a1
  1055.     add.l    #40,a3
  1056.     dbra    d1,reeta
  1057.     rts
  1058. outta:    move.l    #0,(a1)
  1059.     rts
  1060.  
  1061. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  1062. ;­   NoisetrackerV2.0 Normal replay   ­
  1063. ;­     Uses registers d0-d3/a0-a5     ­
  1064. ;­ Mahoney & Kaktus - (C) E.A.S. 1990 ­
  1065. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  1066.  
  1067. ;mt_data=$58000
  1068.  
  1069. mt_init:movem.l    d0-d2/a0-a2,-(a7)
  1070.     move.l    mtdata,a0
  1071.     lea    $3b8(a0),a1
  1072.     moveq    #$7f,d0
  1073.     moveq    #0,d2
  1074.     moveq    #0,d1
  1075. mt_lop2:move.b    (a1)+,d1
  1076.     cmp.b    d2,d1
  1077.     ble.s    mt_lop
  1078.     move.l    d1,d2
  1079. mt_lop:    dbf    d0,mt_lop2
  1080.     addq.b    #1,d2
  1081.  
  1082.     asl.l    #8,d2
  1083.     asl.l    #2,d2
  1084.     lea    4(a1,d2.l),a2
  1085.     lea    mt_samplestarts(pc),a1
  1086.     add.w    #42,a0
  1087.     moveq    #$1e,d0
  1088. mt_lop3:clr.l    (a2)
  1089.     move.l    a2,(a1)+
  1090.     moveq    #0,d1
  1091.     move.w    (a0),d1
  1092.     asl.l    #1,d1
  1093.     add.l    d1,a2
  1094.     add.l    #$1e,a0
  1095.     dbf    d0,mt_lop3
  1096.  
  1097.     or.b    #2,$bfe001
  1098.     move.b    #6,mt_speed
  1099.     moveq    #0,d0
  1100.     lea    $dff000,a0
  1101.     move.w    d0,$a8(a0)
  1102.     move.w    d0,$b8(a0)
  1103.     move.w    d0,$c8(a0)
  1104.     move.w    d0,$d8(a0)
  1105.     clr.b    mt_songpos
  1106.     clr.b    mt_counter
  1107.     clr.w    mt_pattpos
  1108.     movem.l    (a7)+,d0-d2/a0-a2
  1109.     rts
  1110.  
  1111. mt_end:    clr.w    $dff0a8
  1112.     clr.w    $dff0b8
  1113.     clr.w    $dff0c8
  1114.     clr.w    $dff0d8
  1115.     move.w    #$f,$dff096
  1116.     rts
  1117.  
  1118.  
  1119. mt_music:
  1120.     movem.l    d0-d3/a0-a5,-(a7)
  1121.     move.l    mtdata,a0
  1122.     addq.b    #1,mt_counter
  1123.     move.b    mt_counter(pc),d0
  1124.     cmp.b    mt_speed(pc),d0
  1125.     blt    mt_nonew
  1126.     clr.b    mt_counter
  1127.  
  1128.     move.l  mtdata,a0
  1129.     lea    $c(a0),a3
  1130.     lea    $3b8(a0),a2
  1131.     lea    $43c(a0),a0
  1132.  
  1133.     moveq    #0,d0
  1134.     moveq    #0,d1
  1135.     move.b    mt_songpos(pc),d0
  1136.     move.b    (a2,d0.w),d1
  1137.     lsl.w    #8,d1
  1138.     lsl.w    #2,d1
  1139.     add.w    mt_pattpos(pc),d1
  1140.     clr.w    mt_dmacon
  1141.  
  1142.     lea    $dff0a0,a5
  1143.     lea    mt_voice1(pc),a4
  1144.     bsr    mt_playvoice
  1145.     addq.l    #4,d1
  1146.     lea    $dff0b0,a5
  1147.     lea    mt_voice2(pc),a4
  1148.     bsr    mt_playvoice
  1149.     addq.l    #4,d1
  1150.     lea    $dff0c0,a5
  1151.     lea    mt_voice3(pc),a4
  1152.     bsr    mt_playvoice
  1153.     addq.l    #4,d1
  1154.     lea    $dff0d0,a5
  1155.     lea    mt_voice4(pc),a4
  1156.     bsr    mt_playvoice
  1157.  
  1158.     move.w    mt_dmacon(pc),d0
  1159.     beq.s    mt_nodma
  1160.  
  1161.     bsr    mt_wait
  1162.     or.w    #$8000,d0
  1163.     move.w    d0,$dff096
  1164.     bsr    mt_wait
  1165. mt_nodma:
  1166.     lea    mt_voice1(pc),a4
  1167.     lea    $dff000,a3
  1168.     move.l    $a(a4),$a0(a3)
  1169.     move.w    $e(a4),$a4(a3)
  1170.     move.l    $a+$1c(a4),$b0(a3)
  1171.     move.w    $e+$1c(a4),$b4(a3)
  1172.     move.l    $a+$38(a4),$c0(a3)
  1173.     move.w    $e+$38(a4),$c4(a3)
  1174.     move.l    $a+$54(a4),$d0(a3)
  1175.     move.w    $e+$54(a4),$d4(a3)
  1176.  
  1177.     add.w    #$10,mt_pattpos
  1178.     cmp.w    #$400,mt_pattpos
  1179.     bne.s    mt_exit
  1180. mt_next:clr.w    mt_pattpos
  1181.     clr.b    mt_break
  1182.     addq.b    #1,mt_songpos
  1183.     and.b    #$7f,mt_songpos
  1184.     move.b    -2(a2),d0
  1185.     cmp.b    mt_songpos(pc),d0
  1186.     bne.s    mt_exit
  1187.     move.b    -1(a2),mt_songpos
  1188. mt_exit:tst.b    mt_break
  1189.     bne.s    mt_next
  1190.     movem.l    (a7)+,d0-d3/a0-a5
  1191.     rts
  1192.  
  1193. mt_wait:moveq    #3,d3
  1194. mt_wai2:move.b    $dff006,d2
  1195. mt_wai3:cmp.b    $dff006,d2
  1196.     beq.s    mt_wai3
  1197.     dbf    d3,mt_wai2
  1198.     moveq    #8,d2
  1199. mt_wai4:dbf    d2,mt_wai4
  1200.     rts
  1201.  
  1202. mt_nonew:
  1203.     lea    mt_voice1(pc),a4
  1204.     lea    $dff0a0,a5
  1205.     bsr    mt_com
  1206.     lea    mt_voice2(pc),a4
  1207.     lea    $dff0b0,a5
  1208.     bsr    mt_com
  1209.     lea    mt_voice3(pc),a4
  1210.     lea    $dff0c0,a5
  1211.     bsr    mt_com
  1212.     lea    mt_voice4(pc),a4
  1213.     lea    $dff0d0,a5
  1214.     bsr    mt_com
  1215.     bra.s    mt_exit
  1216.  
  1217. mt_mulu:
  1218.     dc.w $000,$01e,$03c,$05a,$078,$096,$0b4,$0d2,$0f0,$10e,$12c,$14a
  1219.     dc.w $168,$186,$1a4,$1c2,$1e0,$1fe,$21c,$23a,$258,$276,$294,$2b2
  1220.     dc.w $2d0,$2ee,$30c,$32a,$348,$366,$384,$3a2
  1221.  
  1222. mt_playvoice:
  1223.     move.l    (a0,d1.l),(a4)
  1224.     moveq    #0,d2
  1225.     move.b    2(a4),d2
  1226.     lsr.b    #4,d2
  1227.     move.b    (a4),d0
  1228.     and.b    #$f0,d0
  1229.     or.b    d0,d2
  1230.     beq.s    mt_oldinstr
  1231.  
  1232.     lea    mt_samplestarts-4(pc),a1
  1233.     asl.w    #2,d2
  1234.     move.l    (a1,d2.l),4(a4)
  1235.     lsr.w    #1,d2
  1236.     move.w    mt_mulu(pc,d2.w),d2
  1237.     move.w    (a3,d2.w),8(a4)
  1238.     move.w    2(a3,d2.w),$12(a4)
  1239.     moveq    #0,d3
  1240.     move.w    4(a3,d2.w),d3
  1241.     tst.w    d3
  1242.     beq.s    mt_noloop
  1243.     move.l    4(a4),d0
  1244.     asl.w    #1,d3
  1245.     add.l    d3,d0
  1246.     move.l    d0,$a(a4)
  1247.     move.w    4(a3,d2.w),d0
  1248.     add.w    6(a3,d2.w),d0
  1249.     move.w    d0,8(a4)
  1250.     bra.s    mt_hejaSverige
  1251. mt_noloop:
  1252.     move.l    4(a4),d0
  1253.     add.l    d3,d0
  1254.     move.l    d0,$a(a4)
  1255. mt_hejaSverige:
  1256.     move.w    6(a3,d2.w),$e(a4)
  1257.     moveq    #0,d0
  1258.     move.b    $13(a4),d0
  1259.     move.w    d0,8(a5)
  1260.  
  1261. mt_oldinstr:
  1262.     move.w    (a4),d0
  1263.     and.w    #$fff,d0
  1264.     beq    mt_com2
  1265.     tst.w    8(a4)
  1266.     beq.s    mt_stopsound
  1267.     tst.b    $12(a4)
  1268.     bne.s    mt_stopsound
  1269.     move.b    2(a4),d0
  1270.     and.b    #$f,d0
  1271.     cmp.b    #5,d0
  1272.     beq.s    mt_setport
  1273.     cmp.b    #3,d0
  1274.     beq.s    mt_setport
  1275.  
  1276.     move.w    (a4),$10(a4)
  1277.     and.w    #$fff,$10(a4)
  1278.     move.w    $1a(a4),$dff096
  1279.     clr.b    $19(a4)
  1280.  
  1281.     move.l    4(a4),(a5)
  1282.     move.w    8(a4),4(a5)
  1283.     move.w    $10(a4),6(a5)
  1284.  
  1285.     move.w    $1a(a4),d0    ;dmaset
  1286.     or.w    d0,mt_dmacon
  1287.     bra    mt_com2
  1288.  
  1289. mt_stopsound:
  1290.     move.w    $1a(a4),$dff096
  1291.     bra    mt_com2
  1292.  
  1293. mt_setport:
  1294.     move.w    (a4),d2
  1295.     and.w    #$fff,d2
  1296.     move.w    d2,$16(a4)
  1297.     move.w    $10(a4),d0
  1298.     clr.b    $14(a4)
  1299.     cmp.w    d0,d2
  1300.     beq.s    mt_clrport
  1301.     bge    mt_com2
  1302.     move.b    #1,$14(a4)
  1303.     bra    mt_com2
  1304. mt_clrport:
  1305.     clr.w    $16(a4)
  1306.     rts
  1307.  
  1308. mt_port:move.b    3(a4),d0
  1309.     beq.s    mt_port2
  1310.     move.b    d0,$15(a4)
  1311.     clr.b    3(a4)
  1312. mt_port2:
  1313.     tst.w    $16(a4)
  1314.     beq.s    mt_rts
  1315.     moveq    #0,d0
  1316.     move.b    $15(a4),d0
  1317.     tst.b    $14(a4)
  1318.     bne.s    mt_sub
  1319.     add.w    d0,$10(a4)
  1320.     move.w    $16(a4),d0
  1321.     cmp.w    $10(a4),d0
  1322.     bgt.s    mt_portok
  1323.     move.w    $16(a4),$10(a4)
  1324.     clr.w    $16(a4)
  1325. mt_portok:
  1326.     move.w    $10(a4),6(a5)
  1327. mt_rts:    rts
  1328.  
  1329. mt_sub:    sub.w    d0,$10(a4)
  1330.     move.w    $16(a4),d0
  1331.     cmp.w    $10(a4),d0
  1332.     blt.s    mt_portok
  1333.     move.w    $16(a4),$10(a4)
  1334.     clr.w    $16(a4)
  1335.     move.w    $10(a4),6(a5)
  1336.     rts
  1337.  
  1338. mt_sin:
  1339.     dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
  1340.     dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18
  1341.  
  1342. mt_vib:    move.b    $3(a4),d0
  1343.     beq.s    mt_vib2
  1344.     move.b    d0,$18(a4)
  1345.  
  1346. mt_vib2:move.b    $19(a4),d0
  1347.     lsr.w    #2,d0
  1348.     and.w    #$1f,d0
  1349.     moveq    #0,d2
  1350.     move.b    mt_sin(pc,d0.w),d2
  1351.     move.b    $18(a4),d0
  1352.     and.w    #$f,d0
  1353.     mulu    d0,d2
  1354.     lsr.w    #7,d2
  1355.     move.w    $10(a4),d0
  1356.     tst.b    $19(a4)
  1357.     bmi.s    mt_vibsub
  1358.     add.w    d2,d0
  1359.     bra.s    mt_vib3
  1360. mt_vibsub:
  1361.     sub.w    d2,d0
  1362. mt_vib3:move.w    d0,6(a5)
  1363.     move.b    $18(a4),d0
  1364.     lsr.w    #2,d0
  1365.     and.w    #$3c,d0
  1366.     add.b    d0,$19(a4)
  1367.     rts
  1368.  
  1369.  
  1370. mt_arplist:
  1371.     dc.b 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1
  1372.  
  1373. mt_arp:    moveq    #0,d0
  1374.     move.b    mt_counter(pc),d0
  1375.     move.b    mt_arplist(pc,d0.w),d0
  1376.     beq.s    mt_arp0
  1377.     cmp.b    #2,d0
  1378.     beq.s    mt_arp2
  1379. mt_arp1:moveq    #0,d0
  1380.     move.b    3(a4),d0
  1381.     lsr.b    #4,d0
  1382.     bra.s    mt_arpdo
  1383. mt_arp2:moveq    #0,d0
  1384.     move.b    3(a4),d0
  1385.     and.b    #$f,d0
  1386. mt_arpdo:
  1387.     asl.w    #1,d0
  1388.     move.w    $10(a4),d1
  1389.     and.w    #$fff,d1
  1390.     lea    mt_periods(pc),a0
  1391.     moveq    #$24,d2
  1392. mt_arp3:cmp.w    (a0)+,d1
  1393.     bge.s    mt_arpfound
  1394.     dbf    d2,mt_arp3
  1395. mt_arp0:move.w    $10(a4),6(a5)
  1396.     rts
  1397. mt_arpfound:
  1398.     move.w    -2(a0,d0.w),6(a5)
  1399.     rts
  1400.  
  1401. mt_normper:
  1402.     move.w    $10(a4),6(a5)
  1403.     rts
  1404.  
  1405. mt_com:    move.w    2(a4),d0
  1406.     and.w    #$fff,d0
  1407.     beq.s    mt_normper
  1408.     move.b    2(a4),d0
  1409.     and.b    #$f,d0
  1410.     tst.b    d0
  1411.     beq.s    mt_arp
  1412.     cmp.b    #1,d0
  1413.     beq.s    mt_portup
  1414.     cmp.b    #2,d0
  1415.     beq.s    mt_portdown
  1416.     cmp.b    #3,d0
  1417.     beq    mt_port
  1418.     cmp.b    #4,d0
  1419.     beq    mt_vib
  1420.     cmp.b    #5,d0
  1421.     beq.s    mt_volport
  1422.     cmp.b    #6,d0
  1423.     beq.s    mt_volvib
  1424.     move.w    $10(a4),6(a5)
  1425.     cmp.b    #$a,d0
  1426.     beq.s    mt_volslide
  1427.     rts
  1428.  
  1429. mt_portup:
  1430.     moveq    #0,d0
  1431.     move.b    3(a4),d0
  1432.     sub.w    d0,$10(a4)
  1433.     move.w    $10(a4),d0
  1434.     cmp.w    #$71,d0
  1435.     bpl.s    mt_portup2
  1436.     move.w    #$71,$10(a4)
  1437. mt_portup2:
  1438.     move.w    $10(a4),6(a5)
  1439.     rts
  1440.  
  1441. mt_portdown:
  1442.     moveq    #0,d0
  1443.     move.b    3(a4),d0
  1444.     add.w    d0,$10(a4)
  1445.     move.w    $10(a4),d0
  1446.     cmp.w    #$358,d0
  1447.     bmi.s    mt_portdown2
  1448.     move.w    #$358,$10(a4)
  1449. mt_portdown2:
  1450.     move.w    $10(a4),6(a5)
  1451.     rts
  1452.  
  1453. mt_volvib:
  1454.      bsr    mt_vib2
  1455.      bra.s    mt_volslide
  1456. mt_volport:
  1457.      bsr    mt_port2
  1458.  
  1459. mt_volslide:
  1460.     moveq    #0,d0
  1461.     move.b    3(a4),d0
  1462.     lsr.b    #4,d0
  1463.     beq.s    mt_vol3
  1464.     add.b    d0,$13(a4)
  1465.     cmp.b    #$40,$13(a4)
  1466.     bmi.s    mt_vol2
  1467.     move.b    #$40,$13(a4)
  1468. mt_vol2:moveq    #0,d0
  1469.     move.b    $13(a4),d0
  1470.     move.w    d0,8(a5)
  1471.     rts
  1472.  
  1473. mt_vol3:move.b    3(a4),d0
  1474.     and.b    #$f,d0
  1475.     sub.b    d0,$13(a4)
  1476.     bpl.s    mt_vol4
  1477.     clr.b    $13(a4)
  1478. mt_vol4:moveq    #0,d0
  1479.     move.b    $13(a4),d0
  1480.     move.w    d0,8(a5)
  1481.     rts
  1482.  
  1483. mt_com2:move.b    $2(a4),d0
  1484.     and.b    #$f,d0
  1485.     cmp.b    #$e,d0
  1486.     beq.s    mt_filter
  1487.     cmp.b    #$d,d0
  1488.     beq.s    mt_pattbreak
  1489.     cmp.b    #$b,d0
  1490.     beq.s    mt_songjmp
  1491.     cmp.b    #$c,d0
  1492.     beq.s    mt_setvol
  1493.     cmp.b    #$f,d0
  1494.     beq.s    mt_setspeed
  1495.     rts
  1496.  
  1497. mt_filter:
  1498.     move.b    3(a4),d0
  1499.     and.b    #1,d0
  1500.     asl.b    #1,d0
  1501.     and.b    #$fd,$bfe001
  1502.     or.b    d0,$bfe001
  1503.     rts
  1504.  
  1505. mt_pattbreak:
  1506.     move.b    #1,mt_break
  1507.     rts
  1508.  
  1509. mt_songjmp:
  1510.     move.b    #1,mt_break
  1511.     move.b    3(a4),d0
  1512.     subq.b    #1,d0
  1513.     move.b    d0,mt_songpos
  1514.     rts
  1515.  
  1516. mt_setvol:
  1517.     cmp.b    #$40,3(a4)
  1518.     bls.s    mt_sv2
  1519.     move.b    #$40,3(a4)
  1520. mt_sv2:    moveq    #0,d0
  1521.     move.b    3(a4),d0
  1522.     move.b    d0,$13(a4)
  1523.     move.w    d0,8(a5)
  1524.     rts
  1525.  
  1526. mt_setspeed:
  1527.     moveq    #0,d0
  1528.     move.b    3(a4),d0
  1529.     cmp.b    #$1f,d0
  1530.     bls.s    mt_sp2
  1531.     moveq    #$1f,d0
  1532. mt_sp2:    tst.w    d0
  1533.     bne.s    mt_sp3
  1534.     moveq    #1,d0
  1535. mt_sp3:    move.b    d0,mt_speed
  1536.     rts
  1537.  
  1538. mt_periods:
  1539.     dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
  1540.     dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
  1541.     dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
  1542.     dc.w $007f,$0078,$0071,$0000
  1543.  
  1544. mt_speed:    dc.b    6
  1545. mt_counter:    dc.b    0
  1546. mt_pattpos:    dc.w    0
  1547. mt_songpos:    dc.b    0
  1548. mt_break:    dc.b    0
  1549. mt_dmacon:    dc.w    0
  1550. mt_samplestarts:    
  1551.         ds.l    $1f
  1552. mt_voice1:        ds.w    13
  1553.         dc.w    1
  1554. mt_voice2:        ds.w    13
  1555.         dc.w    2
  1556. mt_voice3:        ds.w    13
  1557.         dc.w    4
  1558. mt_voice4:        ds.w    13
  1559.         dc.w    8
  1560.  
  1561. introduction:
  1562.     lea    intrline,a0
  1563.     move.l    infoscr,a1
  1564.     add.l    #1122,a1
  1565.     jsr    drawline
  1566.     lea    fireline,a0
  1567.     move.l    infoscr,a1
  1568.     add.l    #1602,a1
  1569.     jsr    drawline
  1570.     lea    scrolltext,a0
  1571.     move.l    a0,scrlctr
  1572.     move.l    #0,chctr
  1573. scrolla:move.l    infoscr,d1
  1574.     add.l    #2242,d1
  1575.     and.l    #$fffffffe,d1
  1576.     move.l    d1,a1
  1577.     lea    scchr,a0
  1578.     move.l    #7,d1
  1579. scrline: roxl.w    (a0)
  1580.     roxl.w    38(a1)
  1581.     roxl.w    36(a1)
  1582.     roxl.w    34(a1)
  1583.     roxl.w    32(a1)
  1584.     roxl.w    30(a1)
  1585.     roxl.w    28(a1)
  1586.     roxl.w    26(a1)
  1587.     roxl.w    24(a1)
  1588.     roxl.w    22(a1)
  1589.     roxl.w    20(a1)
  1590.     roxl.w    18(a1)
  1591.     roxl.w    16(a1)
  1592.     roxl.w    14(a1)
  1593.     roxl.w    12(a1)
  1594.     roxl.w    10(a1)
  1595.     roxl.w    8(a1)
  1596.     roxl.w    6(a1)
  1597.     roxl.w    4(a1)
  1598.     roxl.w    2(a1)
  1599.     roxl.w    (a1)
  1600.     add.l    #40,a1
  1601.     add.l    #2,a0
  1602.     dbra    d1,scrline
  1603.     add.l    #1,chctr
  1604.     cmp.l    #8,chctr
  1605.     bne    fwait
  1606.     move.l    scrlctr,a0
  1607.     move.b    (a0),d0
  1608.     cmp.b    #0,d0
  1609.     bne    ej0
  1610.     lea    scrolltext,a0
  1611.     move.l    a0,scrlctr
  1612.     move.l    #32,d0
  1613. ej0:    add.l    #1,scrlctr
  1614.     move.l    #0,chctr
  1615.     move.l    chars,a2
  1616.     add.l    #2560,a2
  1617.     move.b    d0,d1
  1618.     and.b    #$70,d1
  1619.     cmp.b    #$20,d1
  1620.     bne     bulle
  1621.     sub.l    #320,a2
  1622. bulle:    cmp.b    #$30,d1
  1623.     bne     bulle1
  1624.     add.l    #320,a2
  1625.     and.l    #15,d0
  1626. bulle1:    and.l    #31,d0
  1627.     add.l    d0,a2
  1628.     lea    scchr,a0
  1629.     move.b    (a2),(a0)
  1630.     move.b    40(a2),2(a0)
  1631.     move.b    80(a2),4(a0)
  1632.     move.b    120(a2),6(a0)
  1633.     move.b    160(a2),8(a0)
  1634.     move.b    200(a2),10(a0)
  1635.     move.b    240(a2),12(a0)
  1636.     move.b    280(a2),14(a0)
  1637. fwait:    jsr    realrsync
  1638.     btst    #7,$bfe001
  1639.     bne    scrolla
  1640.     move.l    #scchr,a0
  1641.     move.l    #0,(a0)
  1642.     move.l    #0,4(a0)
  1643.     move.l    #0,8(a0)
  1644.     move.l    #0,12(a0)
  1645.     rts    
  1646.  
  1647.  
  1648.  
  1649. ;chfile:    dc.b    'blagger',0
  1650. ;pgfile:    dc.b    'pg',0
  1651. ;musfile:    dc.b    'jomus',0
  1652.  
  1653. Dosname:    dc.b    'dos.library',0
  1654. Gfxname:    dc.b    'graphics.library',0
  1655.  
  1656.     even
  1657. Dosbase:dc.l    0
  1658. GfxBase:dc.l    0
  1659. copbase:dc.l    0
  1660. Oldcop:    dc.l    0
  1661. Membase:dc.l    0
  1662.  
  1663. chars:    dc.l    data1
  1664. bakgr:    dc.l    0
  1665. mtdata:     dc.l    data3
  1666.  
  1667. infoscr:    dc.l    0
  1668. level:    dc.l    0
  1669. gmod:    dc.l    0
  1670. gubbg:    dc.l    0
  1671. gubbf:    dc.l     0
  1672. gubbx:    dc.l    0
  1673. gubby:    dc.l    0
  1674. gubbh:    dc.l    0
  1675. gaddr:    dc.l    0
  1676. gsaddr:    dc.l    0
  1677. offset:    dc.l    0
  1678. fall:    dc.l    0
  1679. hoppa:    dc.l    0
  1680. hoppctr:dc.l    0
  1681. aktrapp:dc.l    0
  1682. ruts:    dc.l    0
  1683. tsteg:    dc.l    0
  1684. rugr:    dc.w    0
  1685. rugl:    dc.w    0    
  1686. gamy:    dc.l    0
  1687. footctr:dc.l    0
  1688. skajag:    dc.l    0
  1689. ramla:    dc.l    0
  1690. slafs:    dc.l    0
  1691. nycklar:dc.l    0
  1692. nyckn:    dc.l    0    
  1693. klarat:    dc.l    0
  1694. detect:    dc.l    0
  1695. edika:    dc.l    0
  1696. lives:    dc.l    9
  1697. scrlctr:dc.l    0
  1698. chctr:    dc.l    0
  1699. Cpr:    dc.w    $00e0,$0000,$00e2,$c808,$00e4,$0000,$00e6,$e808
  1700. pblank:    dc.w    $00e8,$0000,$00ea,$0000
  1701.     dc.w    $0100,$3300,$008e,$2c81,$0090,$10ba,$0092,$0030
  1702.     dc.w    $0108,$0077,$010a,$0077,$0102,$00ff,$0094,$00d0
  1703. sprite:    dc.w    $0120,$0000,$0122,$0000,$0098,$e000
  1704. nouse:    dc.w    $0124,$0000,$0126,$0000
  1705. zprite:    dc.w    $0128,$0000,$012a,$0000,$012c,$0000,$012e,$0000
  1706.     dc.w    $0130,$0000,$0132,$0000,$0134,$0000,$0136,$0000
  1707.     dc.w    $0138,$0000,$013a,$0000,$013c,$0000,$013e,$0000
  1708. sclrs:    dc.w    $01a2,$0faa,$01a4,$0a40,$01a6,$0dd0    
  1709. zclrs0:    dc.w    $01aa,$0fac,$01ac,$0660,$01ae,$0dd0    
  1710. zclrs1:    dc.w    $01b2,$0f00,$01b4,$00f0,$01b6,$000f    
  1711. zclrs2:    dc.w    $01ba,$0f00,$01bc,$00f0,$01be,$000f    
  1712.     dc.w    $0180,$0000,$0182,$0000,$0184,$004f,$0186,$004f
  1713. clrs:    dc.w    $0188,$0888,$018a,$0000,$018c,$004f,$018e,$004f
  1714. low:    dc.w    $c001,$fffe,$0100,$1300,$0180,$0000,$0182,$0888
  1715. info:    dc.w    $00e0,$0000,$00e2,$0000
  1716.     dc.w    $01aa,$0000,$01ac,$0000,$01ae,$0000    
  1717.     dc.w    $01b2,$0000,$01b4,$0000,$01b6,$0000    
  1718.     dc.w    $01ba,$0000,$01bc,$0000,$01be,$0000    
  1719.     dc.w    $0108,$ffff,$010a,$ffff,$0102,$0000    
  1720.     dc.w    $d801,$fffe,$0182,$0c66
  1721.     dc.w    $e401,$fffe,$0182,$0099
  1722.     dc.w    $f201,$fffe,$0182,$0bb0
  1723.     dc.w    $ffff,$fffe
  1724.  
  1725. varchars:
  1726. ch1:    dc.b    63,0,0,0,0,0,0,0
  1727. ch2:    dc.b    252,0,0,0,0,0,0,0
  1728. ch3:    dc.b    102,102,0,102,102,0,102,102
  1729. ch4:    dc.b    102,102,0,102,102,0,102,102
  1730. ch5:    dc.b    255,102,255,102,255,102,255,102
  1731.  
  1732.         even
  1733. scchr:  dc.l    0,0,0,0,0,0
  1734.     even
  1735. gubbsprite:
  1736.     dc.w    $7086,$8000
  1737. gdata:    dc.l    10,20,30,40,50,60,0,80,90,50,30,50,0,20,30,40,0
  1738. footholddata:
  1739.     dc.b    0,255,1,102,2,255,3,102,4,255,5,102,6,255,7,102
  1740.     dc.b    7,102,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,0,0
  1741.     dc.b    0,0,13,13,13,13
  1742.  
  1743. intrline:dc.b    '     Welcome to jonas fulstrand '
  1744. fireline:dc.b    '            press fire          '
  1745. airline: dc.b   ' level 0                        '
  1746. scline:     dc.b    ' score 000000                   '
  1747. lifeline:dc.b    ' lives 3                        '
  1748. gotxt:     dc.b   '              game over         '
  1749. levline: dc.b    ' Welcome to the first level     '
  1750.      dc.b    ' this is the toilet paper level '
  1751.      dc.b    ' level three yessiree           '
  1752.      dc.b   ' Gnuff gnuff uhu                '
  1753.      dc.b   ' i killed laura palmer          '
  1754.      dc.b   ' aargh   pommes fritzen flyr    '
  1755.      dc.b    ' var alltid bizarr              '
  1756.      dc.b   ' congratulations   You did it   '
  1757.     even
  1758.  
  1759. trash:    dc.l    0,0,0
  1760. nospr:    dc.l    0,0,0,0,0,0
  1761. leveldata:
  1762.     dc.l    338,176,4,0
  1763.     dc.l    600,136,5,0
  1764.     dc.l    672,248,7,0
  1765.     dc.l    184,384,6,0
  1766.     dc.l    608,352,2,0
  1767.     dc.l    856,344,6,0
  1768.     dc.l    1056,376,3,0
  1769.     dc.l    824,128,4,0
  1770.  
  1771. sprs0:    dc.w    1,0,25,0,1,0,0,0,135,215,0,1,$f11,$000,$fff,268,186
  1772. sprs1:    dc.l    0,0,0,0,0,0,0,0,0
  1773. sprs2:    dc.l    0,0,0,0,0,0,0,0,0
  1774. sprs3:    dc.l    0,0,0,0,0,0,0,0,0
  1775. sprs4:    dc.l    0,0,0,0,0,0,0,0,0
  1776. sprs5:    dc.l    0,0,0,0,0,0,0,0,0
  1777.  
  1778. spr0:    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1779. spr1:    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1780. spr2:    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1781. spr3:    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1782. spr4:    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1783. spr5:    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1784.     dc.l    0,0,0,0
  1785. levelsprites:
  1786. lv0:       dc.w    1,0,25,1,0,0,135,215,0,1,$f11,$000,$fff,268,186,0
  1787.     dc.l    0,0,0,0,0,0,0,0
  1788.     dc.w    1,8,30,1,360,460,0,0,1,0,$ff0,$000,$f00,368,86,0
  1789.     dc.l    0,0,0,0,0,0,0,0
  1790.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1791. lv1:       dc.w    1,4,25,1,0,0,160,210,0,1,$c70,$000,$fff,500,176,0
  1792.     dc.l    0,0,0,0,0,0,0,0
  1793.        dc.w    1,12,5,2,690,626,0,0,1,0,$f11,$000,$fff,678,120,0
  1794.        dc.w    1,12,6,2,690,626,0,0,1,0,$f11,$000,$fff,638,80,0
  1795.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1796. lv2:       dc.w    1,24,20,1,500,650,0,0,1,0,$f00,$000,$ff0,555,256,0
  1797.     dc.w    1,24,25,1,500,650,0,0,1,0,$f00,$000,$ff0,645,256,0
  1798.     dc.w    1,16,14,1,274,380,0,0,1,0,$bbb,$000,$f80,346,246,0
  1799.     dc.w    0,28,4,2,0,0,275,242,0,1,$ccc,$000,$888,456,266,0
  1800.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1801. lv3:       dc.w    1,36,20,1,236,508,0,0,1,0,$ff0,$000,$fff,440,396,0
  1802.     dc.l    0,0,0,0,0,0,0,0
  1803.     dc.w    1,28,4,1,0,0,460,428,0,1,$ccc,$000,$888,245,431,0
  1804.     dc.w    1,28,4,2,0,0,465,435,0,1,$ccc,$000,$888,340,441,0
  1805.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1806. lv4:      dc.w    1,20,11,2,0,0,304,350,0,1,$fff,$000,$ff0,645,346,0
  1807.     dc.w    1,20,13,1,0,0,322,360,0,1,$fff,$000,$ff0,682,336,0
  1808.     dc.w    1,20,45,2,0,0,304,336,0,1,$fff,$000,$ff0,728,316,0
  1809.     dc.w    1,20,02,1,0,0,334,360,0,1,$fff,$000,$ff0,777,336,0
  1810.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1811. lv5:      dc.w    1,960,17,2,0,0,374,406,0,1,$0c0,$fff,$000,856,396,0
  1812.     dc.w    1,960,13,1,652,812,0,0,1,0,$0c0,$fff,$000,802,403,0
  1813.     dc.w    1,32,14,2,940,1000,0,0,1,0,$fff,$000,$ccc,980,433,0
  1814.     dc.l    0,0,0,0,0,0,0,0
  1815.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1816. lv6:      dc.w    1,964,17,1,910,1066,0,0,1,0,$f00,$fc0,$000,926,305,0
  1817.     dc.l    0,0,0,0,0,0,0,0
  1818.     dc.w    1,968,13,2,712,772,238,280,1,1,$f77,$fff,$000,752,253,0
  1819.     dc.w    0,968,14,2,0,0,70,170,0,1,$f77,$fff,$000,752,133,0
  1820.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1821. lv7:      dc.w    1,984,0,2,900,1080,0,0,1,0,$0a0,$ff0,$000,1049,160,0
  1822.     dc.w    1,986,0,2,916,1096,0,0,1,0,$0a0,$ff0,$000,1065,160,0
  1823.     dc.w    1,1944,0,2,900,1080,0,0,1,0,$0a0,$ff0,$000,1049,183,0
  1824.     dc.w    1,1946,0,2,916,1096,0,0,1,0,$0a0,$ff0,$000,1065,183,0
  1825.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1826.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1827.     dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1828.  
  1829. scrolltext:
  1830.     dc.b '  hello.            this game was written by marcus g. '
  1831.     dc.b 'and the music was '
  1832.     dc.b 'made by daniel f. using "noisetracker" from hallonsoft. '
  1833.     dc.b '  the face on the intro-picture belongs to'
  1834.     dc.b ' jonas sjostrand.   this game is intended for people like me, '
  1835.     dc.b 'who think that the most enjoyable computer games were those '
  1836.     dc.b 'designed for the c64 before 1987, and especially for people '
  1837.     dc.b 'who liked "manic miner" and "son of blagger".  this game'
  1838.     dc.b ' does not contain any beautiful graphics, mainly because i"m'
  1839.     dc.b ' so bad at drawing, but i hope that you will like it anyway.'
  1840.     dc.b '   "jonas fulstrand" is, of course, public domain! '
  1841.     dc.b '    there will be no greetings to any hacker-groups,  because'
  1842.     dc.b ' there is no longer anyone who deserves it. a little hello though'
  1843.     dc.b ' to the following persons - mattias f, stefan g, christian, jocke,'
  1844.     dc.b ' hans f, mikael w, per o, joakim r, jonny b, fredrik f '
  1845.     dc.b 'and others.     -    be-bop originalaskkopp !!!!         ',0
  1846.  
  1847.  
  1848.     even
  1849. playground:    incbin    "dh0:_pg"
  1850.  
  1851.     even
  1852. startinglevel:    dc.l    0
  1853. antalliv:        dc.l    9
  1854.  
  1855. data1:    incbin    "dh0:_blagger"
  1856. data3:    incbin    "dh0:_jomus"
  1857.  
  1858.  
  1859.  
  1860.